package com.example.victory.swagger.model;

import java.util.Objects;

import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModelProperty;
import java.util.ArrayList;
import java.util.List;
import org.springframework.validation.annotation.Validated;
import javax.validation.Valid;

/**
 * ApiResponseGetCustomerOverallAssetData
 */
@Validated
@javax.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2021-04-26T10:50:39.083+08:00")

public class ApiResponseGetCustomerOverallAssetData   {
  @JsonProperty("baseInfo")
  private CustomerBaseInfo baseInfo = null;

  @JsonProperty("accountOverview")
  private AccountOverview accountOverview = null;

  @JsonProperty("assetDistribution")
  @Valid
  private List<ApiResponseLabelNameValue> assetDistribution = null;

  @JsonProperty("assetStatistics")
  @Valid
  private List<AssetStatistics> assetStatistics = null;

  @JsonProperty("assetTendency")
  private AssetTendency assetTendency = null;

  public ApiResponseGetCustomerOverallAssetData baseInfo(CustomerBaseInfo baseInfo) {
    this.baseInfo = baseInfo;
    return this;
  }

  /**
   * Get baseInfo
   * @return baseInfo
  **/
  @ApiModelProperty(value = "")

  @Valid

  public CustomerBaseInfo getBaseInfo() {
    return baseInfo;
  }

  public void setBaseInfo(CustomerBaseInfo baseInfo) {
    this.baseInfo = baseInfo;
  }

  public ApiResponseGetCustomerOverallAssetData accountOverview(AccountOverview accountOverview) {
    this.accountOverview = accountOverview;
    return this;
  }

  /**
   * Get accountOverview
   * @return accountOverview
  **/
  @ApiModelProperty(value = "")

  @Valid

  public AccountOverview getAccountOverview() {
    return accountOverview;
  }

  public void setAccountOverview(AccountOverview accountOverview) {
    this.accountOverview = accountOverview;
  }

  public ApiResponseGetCustomerOverallAssetData assetDistribution(List<ApiResponseLabelNameValue> assetDistribution) {
    this.assetDistribution = assetDistribution;
    return this;
  }

  public ApiResponseGetCustomerOverallAssetData addAssetDistributionItem(ApiResponseLabelNameValue assetDistributionItem) {
    if (this.assetDistribution == null) {
      this.assetDistribution = new ArrayList<ApiResponseLabelNameValue>();
    }
    this.assetDistribution.add(assetDistributionItem);
    return this;
  }

  /**
   * 资产分布
   * @return assetDistribution
  **/
  @ApiModelProperty(value = "资产分布")

  @Valid

  public List<ApiResponseLabelNameValue> getAssetDistribution() {
    return assetDistribution;
  }

  public void setAssetDistribution(List<ApiResponseLabelNameValue> assetDistribution) {
    this.assetDistribution = assetDistribution;
  }

  public ApiResponseGetCustomerOverallAssetData assetStatistics(List<AssetStatistics> assetStatistics) {
    this.assetStatistics = assetStatistics;
    return this;
  }

  public ApiResponseGetCustomerOverallAssetData addAssetStatisticsItem(AssetStatistics assetStatisticsItem) {
    if (this.assetStatistics == null) {
      this.assetStatistics = new ArrayList<AssetStatistics>();
    }
    this.assetStatistics.add(assetStatisticsItem);
    return this;
  }

  /**
   * 资产统计
   * @return assetStatistics
  **/
  @ApiModelProperty(value = "资产统计")

  @Valid

  public List<AssetStatistics> getAssetStatistics() {
    return assetStatistics;
  }

  public void setAssetStatistics(List<AssetStatistics> assetStatistics) {
    this.assetStatistics = assetStatistics;
  }

  public ApiResponseGetCustomerOverallAssetData assetTendency(AssetTendency assetTendency) {
    this.assetTendency = assetTendency;
    return this;
  }

  /**
   * Get assetTendency
   * @return assetTendency
  **/
  @ApiModelProperty(value = "")

  @Valid

  public AssetTendency getAssetTendency() {
    return assetTendency;
  }

  public void setAssetTendency(AssetTendency assetTendency) {
    this.assetTendency = assetTendency;
  }


  @Override
  public boolean equals(java.lang.Object o) {
    if (this == o) {
      return true;
    }
    if (o == null || getClass() != o.getClass()) {
      return false;
    }
    ApiResponseGetCustomerOverallAssetData apiResponseGetCustomerOverallAssetData = (ApiResponseGetCustomerOverallAssetData) o;
    return Objects.equals(this.baseInfo, apiResponseGetCustomerOverallAssetData.baseInfo) &&
        Objects.equals(this.accountOverview, apiResponseGetCustomerOverallAssetData.accountOverview) &&
        Objects.equals(this.assetDistribution, apiResponseGetCustomerOverallAssetData.assetDistribution) &&
        Objects.equals(this.assetStatistics, apiResponseGetCustomerOverallAssetData.assetStatistics) &&
        Objects.equals(this.assetTendency, apiResponseGetCustomerOverallAssetData.assetTendency);
  }

  @Override
  public int hashCode() {
    return Objects.hash(baseInfo, accountOverview, assetDistribution, assetStatistics, assetTendency);
  }

  @Override
  public String toString() {
    StringBuilder sb = new StringBuilder();
    sb.append("class ApiResponseGetCustomerOverallAssetData {\n");
    
    sb.append("    baseInfo: ").append(toIndentedString(baseInfo)).append("\n");
    sb.append("    accountOverview: ").append(toIndentedString(accountOverview)).append("\n");
    sb.append("    assetDistribution: ").append(toIndentedString(assetDistribution)).append("\n");
    sb.append("    assetStatistics: ").append(toIndentedString(assetStatistics)).append("\n");
    sb.append("    assetTendency: ").append(toIndentedString(assetTendency)).append("\n");
    sb.append("}");
    return sb.toString();
  }

  /**
   * Convert the given object to string with each line indented by 4 spaces
   * (except the first line).
   */
  private String toIndentedString(java.lang.Object o) {
    if (o == null) {
      return "null";
    }
    return o.toString().replace("\n", "\n    ");
  }
}

